{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.insert(0, '../')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from minisom import MiniSom\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.gridspec import GridSpec\n",
    "%matplotlib inline\n",
    "\n",
    "%load_ext autoreload"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training...\n",
      "\r",
      " [    0 / 1000 ]   0% - ? it/s\r",
      " [    0 / 1000 ]   0% - ? it/s\r",
      " [    1 / 1000 ]   0% - 0:00:00 left \r",
      " [    2 / 1000 ]   0% - 0:00:00 left \r",
      " [    3 / 1000 ]   0% - 0:00:00 left \r",
      " [    4 / 1000 ]   0% - 0:00:00 left \r",
      " [    5 / 1000 ]   0% - 0:00:00 left \r",
      " [    6 / 1000 ]   1% - 0:00:00 left \r",
      " [    7 / 1000 ]   1% - 0:00:00 left \r",
      " [    8 / 1000 ]   1% - 0:00:00 left \r",
      " [    9 / 1000 ]   1% - 0:00:00 left \r",
      " [   10 / 1000 ]   1% - 0:00:00 left \r",
      " [   11 / 1000 ]   1% - 0:00:00 left \r",
      " [   12 / 1000 ]   1% - 0:00:00 left \r",
      " [   13 / 1000 ]   1% - 0:00:00 left \r",
      " [   14 / 1000 ]   1% - 0:00:00 left \r",
      " [   15 / 1000 ]   2% - 0:00:00 left \r",
      " [   16 / 1000 ]   2% - 0:00:00 left \r",
      " [   17 / 1000 ]   2% - 0:00:00 left \r",
      " [   18 / 1000 ]   2% - 0:00:00 left \r",
      " [   19 / 1000 ]   2% - 0:00:00 left \r",
      " [   20 / 1000 ]   2% - 0:00:00 left \r",
      " [   21 / 1000 ]   2% - 0:00:00 left \r",
      " [   22 / 1000 ]   2% - 0:00:00 left \r",
      " [   23 / 1000 ]   2% - 0:00:00 left \r",
      " [   24 / 1000 ]   2% - 0:00:00 left \r",
      " [   25 / 1000 ]   2% - 0:00:00 left \r",
      " [   26 / 1000 ]   3% - 0:00:00 left \r",
      " [   27 / 1000 ]   3% - 0:00:00 left \r",
      " [   28 / 1000 ]   3% - 0:00:00 left \r",
      " [   29 / 1000 ]   3% - 0:00:00 left \r",
      " [   30 / 1000 ]   3% - 0:00:00 left \r",
      " [   31 / 1000 ]   3% - 0:00:00 left \r",
      " [   32 / 1000 ]   3% - 0:00:00 left \r",
      " [   33 / 1000 ]   3% - 0:00:00 left \r",
      " [   34 / 1000 ]   3% - 0:00:00 left \r",
      " [   35 / 1000 ]   4% - 0:00:00 left \r",
      " [   36 / 1000 ]   4% - 0:00:00 left \r",
      " [   37 / 1000 ]   4% - 0:00:00 left \r",
      " [   38 / 1000 ]   4% - 0:00:00 left \r",
      " [   39 / 1000 ]   4% - 0:00:00 left \r",
      " [   40 / 1000 ]   4% - 0:00:00 left \r",
      " [   41 / 1000 ]   4% - 0:00:00 left \r",
      " [   42 / 1000 ]   4% - 0:00:00 left \r",
      " [   43 / 1000 ]   4% - 0:00:00 left \r",
      " [   44 / 1000 ]   4% - 0:00:00 left \r",
      " [   45 / 1000 ]   4% - 0:00:00 left \r",
      " [   46 / 1000 ]   5% - 0:00:00 left \r",
      " [   47 / 1000 ]   5% - 0:00:00 left \r",
      " [   48 / 1000 ]   5% - 0:00:00 left \r",
      " [   49 / 1000 ]   5% - 0:00:00 left \r",
      " [   50 / 1000 ]   5% - 0:00:00 left \r",
      " [   51 / 1000 ]   5% - 0:00:00 left \r",
      " [   52 / 1000 ]   5% - 0:00:00 left \r",
      " [   53 / 1000 ]   5% - 0:00:00 left \r",
      " [   54 / 1000 ]   5% - 0:00:00 left \r",
      " [   55 / 1000 ]   6% - 0:00:00 left \r",
      " [   56 / 1000 ]   6% - 0:00:00 left \r",
      " [   57 / 1000 ]   6% - 0:00:00 left \r",
      " [   58 / 1000 ]   6% - 0:00:00 left \r",
      " [   59 / 1000 ]   6% - 0:00:00 left \r",
      " [   60 / 1000 ]   6% - 0:00:00 left \r",
      " [   61 / 1000 ]   6% - 0:00:00 left \r",
      " [   62 / 1000 ]   6% - 0:00:00 left \r",
      " [   63 / 1000 ]   6% - 0:00:00 left \r",
      " [   64 / 1000 ]   6% - 0:00:00 left \r",
      " [   65 / 1000 ]   6% - 0:00:00 left \r",
      " [   66 / 1000 ]   7% - 0:00:00 left \r",
      " [   67 / 1000 ]   7% - 0:00:00 left \r",
      " [   68 / 1000 ]   7% - 0:00:00 left \r",
      " [   69 / 1000 ]   7% - 0:00:00 left \r",
      " [   70 / 1000 ]   7% - 0:00:00 left \r",
      " [   71 / 1000 ]   7% - 0:00:00 left \r",
      " [   72 / 1000 ]   7% - 0:00:00 left \r",
      " [   73 / 1000 ]   7% - 0:00:00 left \r",
      " [   74 / 1000 ]   7% - 0:00:00 left \r",
      " [   75 / 1000 ]   8% - 0:00:00 left \r",
      " [   76 / 1000 ]   8% - 0:00:00 left \r",
      " [   77 / 1000 ]   8% - 0:00:00 left \r",
      " [   78 / 1000 ]   8% - 0:00:00 left \r",
      " [   79 / 1000 ]   8% - 0:00:00 left \r",
      " [   80 / 1000 ]   8% - 0:00:00 left \r",
      " [   81 / 1000 ]   8% - 0:00:00 left \r",
      " [   82 / 1000 ]   8% - 0:00:00 left \r",
      " [   83 / 1000 ]   8% - 0:00:00 left \r",
      " [   84 / 1000 ]   8% - 0:00:00 left \r",
      " [   85 / 1000 ]   8% - 0:00:00 left \r",
      " [   86 / 1000 ]   9% - 0:00:00 left \r",
      " [   87 / 1000 ]   9% - 0:00:00 left \r",
      " [   88 / 1000 ]   9% - 0:00:00 left \r",
      " [   89 / 1000 ]   9% - 0:00:00 left \r",
      " [   90 / 1000 ]   9% - 0:00:00 left \r",
      " [   91 / 1000 ]   9% - 0:00:00 left \r",
      " [   92 / 1000 ]   9% - 0:00:00 left \r",
      " [   93 / 1000 ]   9% - 0:00:00 left \r",
      " [   94 / 1000 ]   9% - 0:00:00 left \r",
      " [   95 / 1000 ]  10% - 0:00:00 left \r",
      " [   96 / 1000 ]  10% - 0:00:00 left \r",
      " [   97 / 1000 ]  10% - 0:00:00 left \r",
      " [   98 / 1000 ]  10% - 0:00:00 left \r",
      " [   99 / 1000 ]  10% - 0:00:00 left \r",
      " [  100 / 1000 ]  10% - 0:00:00 left \r",
      " [  101 / 1000 ]  10% - 0:00:00 left \r",
      " [  102 / 1000 ]  10% - 0:00:00 left \r",
      " [  103 / 1000 ]  10% - 0:00:00 left \r",
      " [  104 / 1000 ]  10% - 0:00:00 left \r",
      " [  105 / 1000 ]  10% - 0:00:00 left \r",
      " [  106 / 1000 ]  11% - 0:00:00 left \r",
      " [  107 / 1000 ]  11% - 0:00:00 left \r",
      " [  108 / 1000 ]  11% - 0:00:00 left \r",
      " [  109 / 1000 ]  11% - 0:00:00 left \r",
      " [  110 / 1000 ]  11% - 0:00:00 left \r",
      " [  111 / 1000 ]  11% - 0:00:00 left \r",
      " [  112 / 1000 ]  11% - 0:00:00 left \r",
      " [  113 / 1000 ]  11% - 0:00:00 left \r",
      " [  114 / 1000 ]  11% - 0:00:00 left \r",
      " [  115 / 1000 ]  12% - 0:00:00 left \r",
      " [  116 / 1000 ]  12% - 0:00:00 left \r",
      " [  117 / 1000 ]  12% - 0:00:00 left \r",
      " [  118 / 1000 ]  12% - 0:00:00 left \r",
      " [  119 / 1000 ]  12% - 0:00:00 left \r",
      " [  120 / 1000 ]  12% - 0:00:00 left \r",
      " [  121 / 1000 ]  12% - 0:00:00 left \r",
      " [  122 / 1000 ]  12% - 0:00:00 left \r",
      " [  123 / 1000 ]  12% - 0:00:00 left \r",
      " [  124 / 1000 ]  12% - 0:00:00 left \r",
      " [  125 / 1000 ]  12% - 0:00:00 left \r",
      " [  126 / 1000 ]  13% - 0:00:00 left \r",
      " [  127 / 1000 ]  13% - 0:00:00 left \r",
      " [  128 / 1000 ]  13% - 0:00:00 left \r",
      " [  129 / 1000 ]  13% - 0:00:00 left \r",
      " [  130 / 1000 ]  13% - 0:00:00 left \r",
      " [  131 / 1000 ]  13% - 0:00:00 left \r",
      " [  132 / 1000 ]  13% - 0:00:00 left \r",
      " [  133 / 1000 ]  13% - 0:00:00 left \r",
      " [  134 / 1000 ]  13% - 0:00:00 left \r",
      " [  135 / 1000 ]  14% - 0:00:00 left \r",
      " [  136 / 1000 ]  14% - 0:00:00 left \r",
      " [  137 / 1000 ]  14% - 0:00:00 left \r",
      " [  138 / 1000 ]  14% - 0:00:00 left \r",
      " [  139 / 1000 ]  14% - 0:00:00 left \r",
      " [  140 / 1000 ]  14% - 0:00:00 left \r",
      " [  141 / 1000 ]  14% - 0:00:00 left \r",
      " [  142 / 1000 ]  14% - 0:00:00 left \r",
      " [  143 / 1000 ]  14% - 0:00:00 left \r",
      " [  144 / 1000 ]  14% - 0:00:00 left \r",
      " [  145 / 1000 ]  14% - 0:00:00 left \r",
      " [  146 / 1000 ]  15% - 0:00:00 left \r",
      " [  147 / 1000 ]  15% - 0:00:00 left \r",
      " [  148 / 1000 ]  15% - 0:00:00 left \r",
      " [  149 / 1000 ]  15% - 0:00:00 left \r",
      " [  150 / 1000 ]  15% - 0:00:00 left \r",
      " [  151 / 1000 ]  15% - 0:00:00 left \r",
      " [  152 / 1000 ]  15% - 0:00:00 left \r",
      " [  153 / 1000 ]  15% - 0:00:00 left \r",
      " [  154 / 1000 ]  15% - 0:00:00 left \r",
      " [  155 / 1000 ]  16% - 0:00:00 left \r",
      " [  156 / 1000 ]  16% - 0:00:00 left \r",
      " [  157 / 1000 ]  16% - 0:00:00 left \r",
      " [  158 / 1000 ]  16% - 0:00:00 left \r",
      " [  159 / 1000 ]  16% - 0:00:00 left \r",
      " [  160 / 1000 ]  16% - 0:00:00 left \r",
      " [  161 / 1000 ]  16% - 0:00:00 left \r",
      " [  162 / 1000 ]  16% - 0:00:00 left \r",
      " [  163 / 1000 ]  16% - 0:00:00 left \r",
      " [  164 / 1000 ]  16% - 0:00:00 left \r",
      " [  165 / 1000 ]  16% - 0:00:00 left \r",
      " [  166 / 1000 ]  17% - 0:00:00 left \r",
      " [  167 / 1000 ]  17% - 0:00:00 left \r",
      " [  168 / 1000 ]  17% - 0:00:00 left \r",
      " [  169 / 1000 ]  17% - 0:00:00 left \r",
      " [  170 / 1000 ]  17% - 0:00:00 left \r",
      " [  171 / 1000 ]  17% - 0:00:00 left \r",
      " [  172 / 1000 ]  17% - 0:00:00 left \r",
      " [  173 / 1000 ]  17% - 0:00:00 left \r",
      " [  174 / 1000 ]  17% - 0:00:00 left \r",
      " [  175 / 1000 ]  18% - 0:00:00 left \r",
      " [  176 / 1000 ]  18% - 0:00:00 left \r",
      " [  177 / 1000 ]  18% - 0:00:00 left \r",
      " [  178 / 1000 ]  18% - 0:00:00 left \r",
      " [  179 / 1000 ]  18% - 0:00:00 left \r",
      " [  180 / 1000 ]  18% - 0:00:00 left \r",
      " [  181 / 1000 ]  18% - 0:00:00 left \r",
      " [  182 / 1000 ]  18% - 0:00:00 left \r",
      " [  183 / 1000 ]  18% - 0:00:00 left \r",
      " [  184 / 1000 ]  18% - 0:00:00 left \r",
      " [  185 / 1000 ]  18% - 0:00:00 left \r",
      " [  186 / 1000 ]  19% - 0:00:00 left \r",
      " [  187 / 1000 ]  19% - 0:00:00 left \r",
      " [  188 / 1000 ]  19% - 0:00:00 left \r",
      " [  189 / 1000 ]  19% - 0:00:00 left \r",
      " [  190 / 1000 ]  19% - 0:00:00 left \r",
      " [  191 / 1000 ]  19% - 0:00:00 left \r",
      " [  192 / 1000 ]  19% - 0:00:00 left \r",
      " [  193 / 1000 ]  19% - 0:00:00 left \r",
      " [  194 / 1000 ]  19% - 0:00:00 left \r",
      " [  195 / 1000 ]  20% - 0:00:00 left \r",
      " [  196 / 1000 ]  20% - 0:00:00 left \r",
      " [  197 / 1000 ]  20% - 0:00:00 left \r",
      " [  198 / 1000 ]  20% - 0:00:00 left \r",
      " [  199 / 1000 ]  20% - 0:00:00 left \r",
      " [  200 / 1000 ]  20% - 0:00:00 left \r",
      " [  201 / 1000 ]  20% - 0:00:00 left \r",
      " [  202 / 1000 ]  20% - 0:00:00 left \r",
      " [  203 / 1000 ]  20% - 0:00:00 left \r",
      " [  204 / 1000 ]  20% - 0:00:00 left \r",
      " [  205 / 1000 ]  20% - 0:00:00 left \r",
      " [  206 / 1000 ]  21% - 0:00:00 left \r",
      " [  207 / 1000 ]  21% - 0:00:00 left \r",
      " [  208 / 1000 ]  21% - 0:00:00 left \r",
      " [  209 / 1000 ]  21% - 0:00:00 left \r",
      " [  210 / 1000 ]  21% - 0:00:00 left \r",
      " [  211 / 1000 ]  21% - 0:00:00 left \r",
      " [  212 / 1000 ]  21% - 0:00:00 left \r",
      " [  213 / 1000 ]  21% - 0:00:00 left \r",
      " [  214 / 1000 ]  21% - 0:00:00 left \r",
      " [  215 / 1000 ]  22% - 0:00:00 left \r",
      " [  216 / 1000 ]  22% - 0:00:00 left \r",
      " [  217 / 1000 ]  22% - 0:00:00 left \r",
      " [  218 / 1000 ]  22% - 0:00:00 left \r",
      " [  219 / 1000 ]  22% - 0:00:00 left \r",
      " [  220 / 1000 ]  22% - 0:00:00 left \r",
      " [  221 / 1000 ]  22% - 0:00:00 left \r",
      " [  222 / 1000 ]  22% - 0:00:00 left \r",
      " [  223 / 1000 ]  22% - 0:00:00 left \r",
      " [  224 / 1000 ]  22% - 0:00:00 left \r",
      " [  225 / 1000 ]  22% - 0:00:00 left \r",
      " [  226 / 1000 ]  23% - 0:00:00 left \r",
      " [  227 / 1000 ]  23% - 0:00:00 left \r",
      " [  228 / 1000 ]  23% - 0:00:00 left \r",
      " [  229 / 1000 ]  23% - 0:00:00 left \r",
      " [  230 / 1000 ]  23% - 0:00:00 left \r",
      " [  231 / 1000 ]  23% - 0:00:00 left \r",
      " [  232 / 1000 ]  23% - 0:00:00 left \r",
      " [  233 / 1000 ]  23% - 0:00:00 left \r",
      " [  234 / 1000 ]  23% - 0:00:00 left \r",
      " [  235 / 1000 ]  24% - 0:00:00 left \r",
      " [  236 / 1000 ]  24% - 0:00:00 left \r",
      " [  237 / 1000 ]  24% - 0:00:00 left \r",
      " [  238 / 1000 ]  24% - 0:00:00 left \r",
      " [  239 / 1000 ]  24% - 0:00:00 left \r",
      " [  240 / 1000 ]  24% - 0:00:00 left \r",
      " [  241 / 1000 ]  24% - 0:00:00 left \r",
      " [  242 / 1000 ]  24% - 0:00:00 left \r",
      " [  243 / 1000 ]  24% - 0:00:00 left \r",
      " [  244 / 1000 ]  24% - 0:00:00 left \r",
      " [  245 / 1000 ]  24% - 0:00:00 left \r",
      " [  246 / 1000 ]  25% - 0:00:00 left \r",
      " [  247 / 1000 ]  25% - 0:00:00 left \r",
      " [  248 / 1000 ]  25% - 0:00:00 left \r",
      " [  249 / 1000 ]  25% - 0:00:00 left \r",
      " [  250 / 1000 ]  25% - 0:00:00 left \r",
      " [  251 / 1000 ]  25% - 0:00:00 left \r",
      " [  252 / 1000 ]  25% - 0:00:00 left \r",
      " [  253 / 1000 ]  25% - 0:00:00 left \r",
      " [  254 / 1000 ]  25% - 0:00:00 left \r",
      " [  255 / 1000 ]  26% - 0:00:00 left \r",
      " [  256 / 1000 ]  26% - 0:00:00 left \r",
      " [  257 / 1000 ]  26% - 0:00:00 left \r",
      " [  258 / 1000 ]  26% - 0:00:00 left \r",
      " [  259 / 1000 ]  26% - 0:00:00 left \r",
      " [  260 / 1000 ]  26% - 0:00:00 left \r",
      " [  261 / 1000 ]  26% - 0:00:00 left \r",
      " [  262 / 1000 ]  26% - 0:00:00 left \r",
      " [  263 / 1000 ]  26% - 0:00:00 left \r",
      " [  264 / 1000 ]  26% - 0:00:00 left \r",
      " [  265 / 1000 ]  26% - 0:00:00 left \r",
      " [  266 / 1000 ]  27% - 0:00:00 left \r",
      " [  267 / 1000 ]  27% - 0:00:00 left \r",
      " [  268 / 1000 ]  27% - 0:00:00 left \r",
      " [  269 / 1000 ]  27% - 0:00:00 left \r",
      " [  270 / 1000 ]  27% - 0:00:00 left \r",
      " [  271 / 1000 ]  27% - 0:00:00 left \r",
      " [  272 / 1000 ]  27% - 0:00:00 left \r",
      " [  273 / 1000 ]  27% - 0:00:00 left \r",
      " [  274 / 1000 ]  27% - 0:00:00 left \r",
      " [  275 / 1000 ]  28% - 0:00:00 left \r",
      " [  276 / 1000 ]  28% - 0:00:00 left \r",
      " [  277 / 1000 ]  28% - 0:00:00 left \r",
      " [  278 / 1000 ]  28% - 0:00:00 left \r",
      " [  279 / 1000 ]  28% - 0:00:00 left \r",
      " [  280 / 1000 ]  28% - 0:00:00 left \r",
      " [  281 / 1000 ]  28% - 0:00:00 left \r",
      " [  282 / 1000 ]  28% - 0:00:00 left \r",
      " [  283 / 1000 ]  28% - 0:00:00 left \r",
      " [  284 / 1000 ]  28% - 0:00:00 left \r",
      " [  285 / 1000 ]  28% - 0:00:00 left \r",
      " [  286 / 1000 ]  29% - 0:00:00 left \r",
      " [  287 / 1000 ]  29% - 0:00:00 left \r",
      " [  288 / 1000 ]  29% - 0:00:00 left \r",
      " [  289 / 1000 ]  29% - 0:00:00 left \r",
      " [  290 / 1000 ]  29% - 0:00:00 left \r",
      " [  291 / 1000 ]  29% - 0:00:00 left \r",
      " [  292 / 1000 ]  29% - 0:00:00 left \r",
      " [  293 / 1000 ]  29% - 0:00:00 left \r",
      " [  294 / 1000 ]  29% - 0:00:00 left \r",
      " [  295 / 1000 ]  30% - 0:00:00 left \r",
      " [  296 / 1000 ]  30% - 0:00:00 left \r",
      " [  297 / 1000 ]  30% - 0:00:00 left \r",
      " [  298 / 1000 ]  30% - 0:00:00 left \r",
      " [  299 / 1000 ]  30% - 0:00:00 left \r",
      " [  300 / 1000 ]  30% - 0:00:00 left \r",
      " [  301 / 1000 ]  30% - 0:00:00 left \r",
      " [  302 / 1000 ]  30% - 0:00:00 left \r",
      " [  303 / 1000 ]  30% - 0:00:00 left \r",
      " [  304 / 1000 ]  30% - 0:00:00 left \r",
      " [  305 / 1000 ]  30% - 0:00:00 left \r",
      " [  306 / 1000 ]  31% - 0:00:00 left \r",
      " [  307 / 1000 ]  31% - 0:00:00 left \r",
      " [  308 / 1000 ]  31% - 0:00:00 left \r",
      " [  309 / 1000 ]  31% - 0:00:00 left \r",
      " [  310 / 1000 ]  31% - 0:00:00 left \r",
      " [  311 / 1000 ]  31% - 0:00:00 left \r",
      " [  312 / 1000 ]  31% - 0:00:00 left \r",
      " [  313 / 1000 ]  31% - 0:00:00 left \r",
      " [  314 / 1000 ]  31% - 0:00:00 left \r",
      " [  315 / 1000 ]  32% - 0:00:00 left \r",
      " [  316 / 1000 ]  32% - 0:00:00 left \r",
      " [  317 / 1000 ]  32% - 0:00:00 left \r",
      " [  318 / 1000 ]  32% - 0:00:00 left \r",
      " [  319 / 1000 ]  32% - 0:00:00 left \r",
      " [  320 / 1000 ]  32% - 0:00:00 left \r",
      " [  321 / 1000 ]  32% - 0:00:00 left \r",
      " [  322 / 1000 ]  32% - 0:00:00 left \r",
      " [  323 / 1000 ]  32% - 0:00:00 left \r",
      " [  324 / 1000 ]  32% - 0:00:00 left \r",
      " [  325 / 1000 ]  32% - 0:00:00 left \r",
      " [  326 / 1000 ]  33% - 0:00:00 left \r",
      " [  327 / 1000 ]  33% - 0:00:00 left \r",
      " [  328 / 1000 ]  33% - 0:00:00 left \r",
      " [  329 / 1000 ]  33% - 0:00:00 left \r",
      " [  330 / 1000 ]  33% - 0:00:00 left \r",
      " [  331 / 1000 ]  33% - 0:00:00 left \r",
      " [  332 / 1000 ]  33% - 0:00:00 left \r",
      " [  333 / 1000 ]  33% - 0:00:00 left \r",
      " [  334 / 1000 ]  33% - 0:00:00 left \r",
      " [  335 / 1000 ]  34% - 0:00:00 left \r",
      " [  336 / 1000 ]  34% - 0:00:00 left \r",
      " [  337 / 1000 ]  34% - 0:00:00 left \r",
      " [  338 / 1000 ]  34% - 0:00:00 left \r",
      " [  339 / 1000 ]  34% - 0:00:00 left \r",
      " [  340 / 1000 ]  34% - 0:00:00 left \r",
      " [  341 / 1000 ]  34% - 0:00:00 left \r",
      " [  342 / 1000 ]  34% - 0:00:00 left \r",
      " [  343 / 1000 ]  34% - 0:00:00 left \r",
      " [  344 / 1000 ]  34% - 0:00:00 left \r",
      " [  345 / 1000 ]  34% - 0:00:00 left \r",
      " [  346 / 1000 ]  35% - 0:00:00 left \r",
      " [  347 / 1000 ]  35% - 0:00:00 left \r",
      " [  348 / 1000 ]  35% - 0:00:00 left \r",
      " [  349 / 1000 ]  35% - 0:00:00 left \r",
      " [  350 / 1000 ]  35% - 0:00:00 left \r",
      " [  351 / 1000 ]  35% - 0:00:00 left \r",
      " [  352 / 1000 ]  35% - 0:00:00 left \r",
      " [  353 / 1000 ]  35% - 0:00:00 left \r",
      " [  354 / 1000 ]  35% - 0:00:00 left \r",
      " [  355 / 1000 ]  36% - 0:00:00 left \r",
      " [  356 / 1000 ]  36% - 0:00:00 left \r",
      " [  357 / 1000 ]  36% - 0:00:00 left \r",
      " [  358 / 1000 ]  36% - 0:00:00 left \r",
      " [  359 / 1000 ]  36% - 0:00:00 left \r",
      " [  360 / 1000 ]  36% - 0:00:00 left \r",
      " [  361 / 1000 ]  36% - 0:00:00 left \r",
      " [  362 / 1000 ]  36% - 0:00:00 left \r",
      " [  363 / 1000 ]  36% - 0:00:00 left \r",
      " [  364 / 1000 ]  36% - 0:00:00 left \r",
      " [  365 / 1000 ]  36% - 0:00:00 left \r",
      " [  366 / 1000 ]  37% - 0:00:00 left \r",
      " [  367 / 1000 ]  37% - 0:00:00 left \r",
      " [  368 / 1000 ]  37% - 0:00:00 left \r",
      " [  369 / 1000 ]  37% - 0:00:00 left \r",
      " [  370 / 1000 ]  37% - 0:00:00 left \r",
      " [  371 / 1000 ]  37% - 0:00:00 left \r",
      " [  372 / 1000 ]  37% - 0:00:00 left \r",
      " [  373 / 1000 ]  37% - 0:00:00 left \r",
      " [  374 / 1000 ]  37% - 0:00:00 left \r",
      " [  375 / 1000 ]  38% - 0:00:00 left \r",
      " [  376 / 1000 ]  38% - 0:00:00 left \r",
      " [  377 / 1000 ]  38% - 0:00:00 left \r",
      " [  378 / 1000 ]  38% - 0:00:00 left \r",
      " [  379 / 1000 ]  38% - 0:00:00 left \r",
      " [  380 / 1000 ]  38% - 0:00:00 left \r",
      " [  381 / 1000 ]  38% - 0:00:00 left \r",
      " [  382 / 1000 ]  38% - 0:00:00 left \r",
      " [  383 / 1000 ]  38% - 0:00:00 left \r",
      " [  384 / 1000 ]  38% - 0:00:00 left \r",
      " [  385 / 1000 ]  38% - 0:00:00 left \r",
      " [  386 / 1000 ]  39% - 0:00:00 left \r",
      " [  387 / 1000 ]  39% - 0:00:00 left \r",
      " [  388 / 1000 ]  39% - 0:00:00 left \r",
      " [  389 / 1000 ]  39% - 0:00:00 left \r",
      " [  390 / 1000 ]  39% - 0:00:00 left \r",
      " [  391 / 1000 ]  39% - 0:00:00 left \r",
      " [  392 / 1000 ]  39% - 0:00:00 left \r",
      " [  393 / 1000 ]  39% - 0:00:00 left \r",
      " [  394 / 1000 ]  39% - 0:00:00 left \r",
      " [  395 / 1000 ]  40% - 0:00:00 left \r",
      " [  396 / 1000 ]  40% - 0:00:00 left \r",
      " [  397 / 1000 ]  40% - 0:00:00 left \r",
      " [  398 / 1000 ]  40% - 0:00:00 left \r",
      " [  399 / 1000 ]  40% - 0:00:00 left \r",
      " [  400 / 1000 ]  40% - 0:00:00 left \r",
      " [  401 / 1000 ]  40% - 0:00:00 left \r",
      " [  402 / 1000 ]  40% - 0:00:00 left \r",
      " [  403 / 1000 ]  40% - 0:00:00 left \r",
      " [  404 / 1000 ]  40% - 0:00:00 left \r",
      " [  405 / 1000 ]  40% - 0:00:00 left \r",
      " [  406 / 1000 ]  41% - 0:00:00 left \r",
      " [  407 / 1000 ]  41% - 0:00:00 left \r",
      " [  408 / 1000 ]  41% - 0:00:00 left \r",
      " [  409 / 1000 ]  41% - 0:00:00 left \r",
      " [  410 / 1000 ]  41% - 0:00:00 left \r",
      " [  411 / 1000 ]  41% - 0:00:00 left \r",
      " [  412 / 1000 ]  41% - 0:00:00 left \r",
      " [  413 / 1000 ]  41% - 0:00:00 left \r",
      " [  414 / 1000 ]  41% - 0:00:00 left \r",
      " [  415 / 1000 ]  42% - 0:00:00 left \r",
      " [  416 / 1000 ]  42% - 0:00:00 left \r",
      " [  417 / 1000 ]  42% - 0:00:00 left \r",
      " [  418 / 1000 ]  42% - 0:00:00 left \r",
      " [  419 / 1000 ]  42% - 0:00:00 left \r",
      " [  420 / 1000 ]  42% - 0:00:00 left \r",
      " [  421 / 1000 ]  42% - 0:00:00 left \r",
      " [  422 / 1000 ]  42% - 0:00:00 left \r",
      " [  423 / 1000 ]  42% - 0:00:00 left \r",
      " [  424 / 1000 ]  42% - 0:00:00 left \r",
      " [  425 / 1000 ]  42% - 0:00:00 left \r",
      " [  426 / 1000 ]  43% - 0:00:00 left \r",
      " [  427 / 1000 ]  43% - 0:00:00 left \r",
      " [  428 / 1000 ]  43% - 0:00:00 left \r",
      " [  429 / 1000 ]  43% - 0:00:00 left \r",
      " [  430 / 1000 ]  43% - 0:00:00 left \r",
      " [  431 / 1000 ]  43% - 0:00:00 left \r",
      " [  432 / 1000 ]  43% - 0:00:00 left \r",
      " [  433 / 1000 ]  43% - 0:00:00 left \r",
      " [  434 / 1000 ]  43% - 0:00:00 left \r",
      " [  435 / 1000 ]  44% - 0:00:00 left \r",
      " [  436 / 1000 ]  44% - 0:00:00 left \r",
      " [  437 / 1000 ]  44% - 0:00:00 left \r",
      " [  438 / 1000 ]  44% - 0:00:00 left \r",
      " [  439 / 1000 ]  44% - 0:00:00 left \r",
      " [  440 / 1000 ]  44% - 0:00:00 left \r",
      " [  441 / 1000 ]  44% - 0:00:00 left \r",
      " [  442 / 1000 ]  44% - 0:00:00 left \r",
      " [  443 / 1000 ]  44% - 0:00:00 left \r",
      " [  444 / 1000 ]  44% - 0:00:00 left \r",
      " [  445 / 1000 ]  44% - 0:00:00 left \r",
      " [  446 / 1000 ]  45% - 0:00:00 left \r",
      " [  447 / 1000 ]  45% - 0:00:00 left \r",
      " [  448 / 1000 ]  45% - 0:00:00 left \r",
      " [  449 / 1000 ]  45% - 0:00:00 left \r",
      " [  450 / 1000 ]  45% - 0:00:00 left \r",
      " [  451 / 1000 ]  45% - 0:00:00 left \r",
      " [  452 / 1000 ]  45% - 0:00:00 left \r",
      " [  453 / 1000 ]  45% - 0:00:00 left \r",
      " [  454 / 1000 ]  45% - 0:00:00 left \r",
      " [  455 / 1000 ]  46% - 0:00:00 left \r",
      " [  456 / 1000 ]  46% - 0:00:00 left \r",
      " [  457 / 1000 ]  46% - 0:00:00 left \r",
      " [  458 / 1000 ]  46% - 0:00:00 left \r",
      " [  459 / 1000 ]  46% - 0:00:00 left \r",
      " [  460 / 1000 ]  46% - 0:00:00 left \r",
      " [  461 / 1000 ]  46% - 0:00:00 left \r",
      " [  462 / 1000 ]  46% - 0:00:00 left \r",
      " [  463 / 1000 ]  46% - 0:00:00 left \r",
      " [  464 / 1000 ]  46% - 0:00:00 left \r",
      " [  465 / 1000 ]  46% - 0:00:00 left \r",
      " [  466 / 1000 ]  47% - 0:00:00 left \r",
      " [  467 / 1000 ]  47% - 0:00:00 left \r",
      " [  468 / 1000 ]  47% - 0:00:00 left \r",
      " [  469 / 1000 ]  47% - 0:00:00 left \r",
      " [  470 / 1000 ]  47% - 0:00:00 left \r",
      " [  471 / 1000 ]  47% - 0:00:00 left \r",
      " [  472 / 1000 ]  47% - 0:00:00 left \r",
      " [  473 / 1000 ]  47% - 0:00:00 left \r",
      " [  474 / 1000 ]  47% - 0:00:00 left \r",
      " [  475 / 1000 ]  48% - 0:00:00 left \r",
      " [  476 / 1000 ]  48% - 0:00:00 left \r",
      " [  477 / 1000 ]  48% - 0:00:00 left \r",
      " [  478 / 1000 ]  48% - 0:00:00 left \r",
      " [  479 / 1000 ]  48% - 0:00:00 left \r",
      " [  480 / 1000 ]  48% - 0:00:00 left \r",
      " [  481 / 1000 ]  48% - 0:00:00 left \r",
      " [  482 / 1000 ]  48% - 0:00:00 left \r",
      " [  483 / 1000 ]  48% - 0:00:00 left \r",
      " [  484 / 1000 ]  48% - 0:00:00 left \r",
      " [  485 / 1000 ]  48% - 0:00:00 left \r",
      " [  486 / 1000 ]  49% - 0:00:00 left \r",
      " [  487 / 1000 ]  49% - 0:00:00 left \r",
      " [  488 / 1000 ]  49% - 0:00:00 left \r",
      " [  489 / 1000 ]  49% - 0:00:00 left \r",
      " [  490 / 1000 ]  49% - 0:00:00 left \r",
      " [  491 / 1000 ]  49% - 0:00:00 left \r",
      " [  492 / 1000 ]  49% - 0:00:00 left \r",
      " [  493 / 1000 ]  49% - 0:00:00 left \r",
      " [  494 / 1000 ]  49% - 0:00:00 left \r",
      " [  495 / 1000 ]  50% - 0:00:00 left \r",
      " [  496 / 1000 ]  50% - 0:00:00 left \r",
      " [  497 / 1000 ]  50% - 0:00:00 left \r",
      " [  498 / 1000 ]  50% - 0:00:00 left \r",
      " [  499 / 1000 ]  50% - 0:00:00 left \r",
      " [  500 / 1000 ]  50% - 0:00:00 left \r",
      " [  501 / 1000 ]  50% - 0:00:00 left \r",
      " [  502 / 1000 ]  50% - 0:00:00 left \r",
      " [  503 / 1000 ]  50% - 0:00:00 left \r",
      " [  504 / 1000 ]  50% - 0:00:00 left \r",
      " [  505 / 1000 ]  50% - 0:00:00 left \r",
      " [  506 / 1000 ]  51% - 0:00:00 left \r",
      " [  507 / 1000 ]  51% - 0:00:00 left \r",
      " [  508 / 1000 ]  51% - 0:00:00 left \r",
      " [  509 / 1000 ]  51% - 0:00:00 left \r",
      " [  510 / 1000 ]  51% - 0:00:00 left \r",
      " [  511 / 1000 ]  51% - 0:00:00 left \r",
      " [  512 / 1000 ]  51% - 0:00:00 left \r",
      " [  513 / 1000 ]  51% - 0:00:00 left \r",
      " [  514 / 1000 ]  51% - 0:00:00 left \r",
      " [  515 / 1000 ]  52% - 0:00:00 left \r",
      " [  516 / 1000 ]  52% - 0:00:00 left \r",
      " [  517 / 1000 ]  52% - 0:00:00 left \r",
      " [  518 / 1000 ]  52% - 0:00:00 left \r",
      " [  519 / 1000 ]  52% - 0:00:00 left \r",
      " [  520 / 1000 ]  52% - 0:00:00 left \r",
      " [  521 / 1000 ]  52% - 0:00:00 left \r",
      " [  522 / 1000 ]  52% - 0:00:00 left \r",
      " [  523 / 1000 ]  52% - 0:00:00 left \r",
      " [  524 / 1000 ]  52% - 0:00:00 left \r",
      " [  525 / 1000 ]  52% - 0:00:00 left \r",
      " [  526 / 1000 ]  53% - 0:00:00 left \r",
      " [  527 / 1000 ]  53% - 0:00:00 left \r",
      " [  528 / 1000 ]  53% - 0:00:00 left \r",
      " [  529 / 1000 ]  53% - 0:00:00 left \r",
      " [  530 / 1000 ]  53% - 0:00:00 left \r",
      " [  531 / 1000 ]  53% - 0:00:00 left \r",
      " [  532 / 1000 ]  53% - 0:00:00 left \r",
      " [  533 / 1000 ]  53% - 0:00:00 left \r",
      " [  534 / 1000 ]  53% - 0:00:00 left \r",
      " [  535 / 1000 ]  54% - 0:00:00 left \r",
      " [  536 / 1000 ]  54% - 0:00:00 left \r",
      " [  537 / 1000 ]  54% - 0:00:00 left \r",
      " [  538 / 1000 ]  54% - 0:00:00 left \r",
      " [  539 / 1000 ]  54% - 0:00:00 left \r",
      " [  540 / 1000 ]  54% - 0:00:00 left \r",
      " [  541 / 1000 ]  54% - 0:00:00 left \r",
      " [  542 / 1000 ]  54% - 0:00:00 left \r",
      " [  543 / 1000 ]  54% - 0:00:00 left \r",
      " [  544 / 1000 ]  54% - 0:00:00 left \r",
      " [  545 / 1000 ]  54% - 0:00:00 left \r",
      " [  546 / 1000 ]  55% - 0:00:00 left \r",
      " [  547 / 1000 ]  55% - 0:00:00 left \r",
      " [  548 / 1000 ]  55% - 0:00:00 left \r",
      " [  549 / 1000 ]  55% - 0:00:00 left \r",
      " [  550 / 1000 ]  55% - 0:00:00 left \r",
      " [  551 / 1000 ]  55% - 0:00:00 left \r",
      " [  552 / 1000 ]  55% - 0:00:00 left \r",
      " [  553 / 1000 ]  55% - 0:00:00 left \r",
      " [  554 / 1000 ]  55% - 0:00:00 left \r",
      " [  555 / 1000 ]  56% - 0:00:00 left \r",
      " [  556 / 1000 ]  56% - 0:00:00 left \r",
      " [  557 / 1000 ]  56% - 0:00:00 left \r",
      " [  558 / 1000 ]  56% - 0:00:00 left \r",
      " [  559 / 1000 ]  56% - 0:00:00 left \r",
      " [  560 / 1000 ]  56% - 0:00:00 left \r",
      " [  561 / 1000 ]  56% - 0:00:00 left \r",
      " [  562 / 1000 ]  56% - 0:00:00 left \r",
      " [  563 / 1000 ]  56% - 0:00:00 left \r",
      " [  564 / 1000 ]  56% - 0:00:00 left \r",
      " [  565 / 1000 ]  56% - 0:00:00 left \r",
      " [  566 / 1000 ]  57% - 0:00:00 left \r",
      " [  567 / 1000 ]  57% - 0:00:00 left \r",
      " [  568 / 1000 ]  57% - 0:00:00 left \r",
      " [  569 / 1000 ]  57% - 0:00:00 left \r",
      " [  570 / 1000 ]  57% - 0:00:00 left \r",
      " [  571 / 1000 ]  57% - 0:00:00 left \r",
      " [  572 / 1000 ]  57% - 0:00:00 left \r",
      " [  573 / 1000 ]  57% - 0:00:00 left \r",
      " [  574 / 1000 ]  57% - 0:00:00 left \r",
      " [  575 / 1000 ]  58% - 0:00:00 left \r",
      " [  576 / 1000 ]  58% - 0:00:00 left \r",
      " [  577 / 1000 ]  58% - 0:00:00 left \r",
      " [  578 / 1000 ]  58% - 0:00:00 left \r",
      " [  579 / 1000 ]  58% - 0:00:00 left \r",
      " [  580 / 1000 ]  58% - 0:00:00 left \r",
      " [  581 / 1000 ]  58% - 0:00:00 left \r",
      " [  582 / 1000 ]  58% - 0:00:00 left \r",
      " [  583 / 1000 ]  58% - 0:00:00 left \r",
      " [  584 / 1000 ]  58% - 0:00:00 left \r",
      " [  585 / 1000 ]  58% - 0:00:00 left \r",
      " [  586 / 1000 ]  59% - 0:00:00 left \r",
      " [  587 / 1000 ]  59% - 0:00:00 left \r",
      " [  588 / 1000 ]  59% - 0:00:00 left \r",
      " [  589 / 1000 ]  59% - 0:00:00 left \r",
      " [  590 / 1000 ]  59% - 0:00:00 left \r",
      " [  591 / 1000 ]  59% - 0:00:00 left \r",
      " [  592 / 1000 ]  59% - 0:00:00 left \r",
      " [  593 / 1000 ]  59% - 0:00:00 left \r",
      " [  594 / 1000 ]  59% - 0:00:00 left \r",
      " [  595 / 1000 ]  60% - 0:00:00 left \r",
      " [  596 / 1000 ]  60% - 0:00:00 left \r",
      " [  597 / 1000 ]  60% - 0:00:00 left \r",
      " [  598 / 1000 ]  60% - 0:00:00 left \r",
      " [  599 / 1000 ]  60% - 0:00:00 left \r",
      " [  600 / 1000 ]  60% - 0:00:00 left \r",
      " [  601 / 1000 ]  60% - 0:00:00 left \r",
      " [  602 / 1000 ]  60% - 0:00:00 left \r",
      " [  603 / 1000 ]  60% - 0:00:00 left \r",
      " [  604 / 1000 ]  60% - 0:00:00 left \r",
      " [  605 / 1000 ]  60% - 0:00:00 left \r",
      " [  606 / 1000 ]  61% - 0:00:00 left \r",
      " [  607 / 1000 ]  61% - 0:00:00 left \r",
      " [  608 / 1000 ]  61% - 0:00:00 left \r",
      " [  609 / 1000 ]  61% - 0:00:00 left \r",
      " [  610 / 1000 ]  61% - 0:00:00 left \r",
      " [  611 / 1000 ]  61% - 0:00:00 left \r",
      " [  612 / 1000 ]  61% - 0:00:00 left \r",
      " [  613 / 1000 ]  61% - 0:00:00 left \r",
      " [  614 / 1000 ]  61% - 0:00:00 left \r",
      " [  615 / 1000 ]  62% - 0:00:00 left \r",
      " [  616 / 1000 ]  62% - 0:00:00 left \r",
      " [  617 / 1000 ]  62% - 0:00:00 left \r",
      " [  618 / 1000 ]  62% - 0:00:00 left \r",
      " [  619 / 1000 ]  62% - 0:00:00 left \r",
      " [  620 / 1000 ]  62% - 0:00:00 left \r",
      " [  621 / 1000 ]  62% - 0:00:00 left \r",
      " [  622 / 1000 ]  62% - 0:00:00 left \r",
      " [  623 / 1000 ]  62% - 0:00:00 left \r",
      " [  624 / 1000 ]  62% - 0:00:00 left \r",
      " [  625 / 1000 ]  62% - 0:00:00 left \r",
      " [  626 / 1000 ]  63% - 0:00:00 left \r",
      " [  627 / 1000 ]  63% - 0:00:00 left \r",
      " [  628 / 1000 ]  63% - 0:00:00 left \r",
      " [  629 / 1000 ]  63% - 0:00:00 left \r",
      " [  630 / 1000 ]  63% - 0:00:00 left \r",
      " [  631 / 1000 ]  63% - 0:00:00 left \r",
      " [  632 / 1000 ]  63% - 0:00:00 left \r",
      " [  633 / 1000 ]  63% - 0:00:00 left \r",
      " [  634 / 1000 ]  63% - 0:00:00 left \r",
      " [  635 / 1000 ]  64% - 0:00:00 left \r",
      " [  636 / 1000 ]  64% - 0:00:00 left \r",
      " [  637 / 1000 ]  64% - 0:00:00 left \r",
      " [  638 / 1000 ]  64% - 0:00:00 left \r",
      " [  639 / 1000 ]  64% - 0:00:00 left \r",
      " [  640 / 1000 ]  64% - 0:00:00 left \r",
      " [  641 / 1000 ]  64% - 0:00:00 left \r",
      " [  642 / 1000 ]  64% - 0:00:00 left \r",
      " [  643 / 1000 ]  64% - 0:00:00 left \r",
      " [  644 / 1000 ]  64% - 0:00:00 left \r",
      " [  645 / 1000 ]  64% - 0:00:00 left \r",
      " [  646 / 1000 ]  65% - 0:00:00 left \r",
      " [  647 / 1000 ]  65% - 0:00:00 left \r",
      " [  648 / 1000 ]  65% - 0:00:00 left \r",
      " [  649 / 1000 ]  65% - 0:00:00 left \r",
      " [  650 / 1000 ]  65% - 0:00:00 left \r",
      " [  651 / 1000 ]  65% - 0:00:00 left \r",
      " [  652 / 1000 ]  65% - 0:00:00 left \r",
      " [  653 / 1000 ]  65% - 0:00:00 left \r",
      " [  654 / 1000 ]  65% - 0:00:00 left \r",
      " [  655 / 1000 ]  66% - 0:00:00 left \r",
      " [  656 / 1000 ]  66% - 0:00:00 left \r",
      " [  657 / 1000 ]  66% - 0:00:00 left \r",
      " [  658 / 1000 ]  66% - 0:00:00 left \r",
      " [  659 / 1000 ]  66% - 0:00:00 left \r",
      " [  660 / 1000 ]  66% - 0:00:00 left \r",
      " [  661 / 1000 ]  66% - 0:00:00 left \r",
      " [  662 / 1000 ]  66% - 0:00:00 left \r",
      " [  663 / 1000 ]  66% - 0:00:00 left \r",
      " [  664 / 1000 ]  66% - 0:00:00 left \r",
      " [  665 / 1000 ]  66% - 0:00:00 left \r",
      " [  666 / 1000 ]  67% - 0:00:00 left \r",
      " [  667 / 1000 ]  67% - 0:00:00 left \r",
      " [  668 / 1000 ]  67% - 0:00:00 left \r",
      " [  669 / 1000 ]  67% - 0:00:00 left \r",
      " [  670 / 1000 ]  67% - 0:00:00 left \r",
      " [  671 / 1000 ]  67% - 0:00:00 left \r",
      " [  672 / 1000 ]  67% - 0:00:00 left \r",
      " [  673 / 1000 ]  67% - 0:00:00 left \r",
      " [  674 / 1000 ]  67% - 0:00:00 left \r",
      " [  675 / 1000 ]  68% - 0:00:00 left \r",
      " [  676 / 1000 ]  68% - 0:00:00 left \r",
      " [  677 / 1000 ]  68% - 0:00:00 left \r",
      " [  678 / 1000 ]  68% - 0:00:00 left \r",
      " [  679 / 1000 ]  68% - 0:00:00 left \r",
      " [  680 / 1000 ]  68% - 0:00:00 left \r",
      " [  681 / 1000 ]  68% - 0:00:00 left \r",
      " [  682 / 1000 ]  68% - 0:00:00 left \r",
      " [  683 / 1000 ]  68% - 0:00:00 left \r",
      " [  684 / 1000 ]  68% - 0:00:00 left \r",
      " [  685 / 1000 ]  68% - 0:00:00 left \r",
      " [  686 / 1000 ]  69% - 0:00:00 left \r",
      " [  687 / 1000 ]  69% - 0:00:00 left \r",
      " [  688 / 1000 ]  69% - 0:00:00 left \r",
      " [  689 / 1000 ]  69% - 0:00:00 left \r",
      " [  690 / 1000 ]  69% - 0:00:00 left \r",
      " [  691 / 1000 ]  69% - 0:00:00 left \r",
      " [  692 / 1000 ]  69% - 0:00:00 left \r",
      " [  693 / 1000 ]  69% - 0:00:00 left \r",
      " [  694 / 1000 ]  69% - 0:00:00 left \r",
      " [  695 / 1000 ]  70% - 0:00:00 left \r",
      " [  696 / 1000 ]  70% - 0:00:00 left \r",
      " [  697 / 1000 ]  70% - 0:00:00 left \r",
      " [  698 / 1000 ]  70% - 0:00:00 left \r",
      " [  699 / 1000 ]  70% - 0:00:00 left \r",
      " [  700 / 1000 ]  70% - 0:00:00 left \r",
      " [  701 / 1000 ]  70% - 0:00:00 left \r",
      " [  702 / 1000 ]  70% - 0:00:00 left \r",
      " [  703 / 1000 ]  70% - 0:00:00 left \r",
      " [  704 / 1000 ]  70% - 0:00:00 left \r",
      " [  705 / 1000 ]  70% - 0:00:00 left \r",
      " [  706 / 1000 ]  71% - 0:00:00 left \r",
      " [  707 / 1000 ]  71% - 0:00:00 left \r",
      " [  708 / 1000 ]  71% - 0:00:00 left \r",
      " [  709 / 1000 ]  71% - 0:00:00 left \r",
      " [  710 / 1000 ]  71% - 0:00:00 left \r",
      " [  711 / 1000 ]  71% - 0:00:00 left \r",
      " [  712 / 1000 ]  71% - 0:00:00 left \r",
      " [  713 / 1000 ]  71% - 0:00:00 left \r",
      " [  714 / 1000 ]  71% - 0:00:00 left \r",
      " [  715 / 1000 ]  72% - 0:00:00 left \r",
      " [  716 / 1000 ]  72% - 0:00:00 left \r",
      " [  717 / 1000 ]  72% - 0:00:00 left \r",
      " [  718 / 1000 ]  72% - 0:00:00 left \r",
      " [  719 / 1000 ]  72% - 0:00:00 left \r",
      " [  720 / 1000 ]  72% - 0:00:00 left \r",
      " [  721 / 1000 ]  72% - 0:00:00 left \r",
      " [  722 / 1000 ]  72% - 0:00:00 left \r",
      " [  723 / 1000 ]  72% - 0:00:00 left \r",
      " [  724 / 1000 ]  72% - 0:00:00 left \r",
      " [  725 / 1000 ]  72% - 0:00:00 left \r",
      " [  726 / 1000 ]  73% - 0:00:00 left \r",
      " [  727 / 1000 ]  73% - 0:00:00 left \r",
      " [  728 / 1000 ]  73% - 0:00:00 left \r",
      " [  729 / 1000 ]  73% - 0:00:00 left \r",
      " [  730 / 1000 ]  73% - 0:00:00 left \r",
      " [  731 / 1000 ]  73% - 0:00:00 left \r",
      " [  732 / 1000 ]  73% - 0:00:00 left \r",
      " [  733 / 1000 ]  73% - 0:00:00 left \r",
      " [  734 / 1000 ]  73% - 0:00:00 left \r",
      " [  735 / 1000 ]  74% - 0:00:00 left \r",
      " [  736 / 1000 ]  74% - 0:00:00 left \r",
      " [  737 / 1000 ]  74% - 0:00:00 left \r",
      " [  738 / 1000 ]  74% - 0:00:00 left \r",
      " [  739 / 1000 ]  74% - 0:00:00 left \r",
      " [  740 / 1000 ]  74% - 0:00:00 left \r",
      " [  741 / 1000 ]  74% - 0:00:00 left \r",
      " [  742 / 1000 ]  74% - 0:00:00 left \r",
      " [  743 / 1000 ]  74% - 0:00:00 left \r",
      " [  744 / 1000 ]  74% - 0:00:00 left \r",
      " [  745 / 1000 ]  74% - 0:00:00 left \r",
      " [  746 / 1000 ]  75% - 0:00:00 left \r",
      " [  747 / 1000 ]  75% - 0:00:00 left \r",
      " [  748 / 1000 ]  75% - 0:00:00 left \r",
      " [  749 / 1000 ]  75% - 0:00:00 left \r",
      " [  750 / 1000 ]  75% - 0:00:00 left \r",
      " [  751 / 1000 ]  75% - 0:00:00 left \r",
      " [  752 / 1000 ]  75% - 0:00:00 left \r",
      " [  753 / 1000 ]  75% - 0:00:00 left \r",
      " [  754 / 1000 ]  75% - 0:00:00 left \r",
      " [  755 / 1000 ]  76% - 0:00:00 left \r",
      " [  756 / 1000 ]  76% - 0:00:00 left \r",
      " [  757 / 1000 ]  76% - 0:00:00 left \r",
      " [  758 / 1000 ]  76% - 0:00:00 left \r",
      " [  759 / 1000 ]  76% - 0:00:00 left \r",
      " [  760 / 1000 ]  76% - 0:00:00 left \r",
      " [  761 / 1000 ]  76% - 0:00:00 left \r",
      " [  762 / 1000 ]  76% - 0:00:00 left \r",
      " [  763 / 1000 ]  76% - 0:00:00 left \r",
      " [  764 / 1000 ]  76% - 0:00:00 left \r",
      " [  765 / 1000 ]  76% - 0:00:00 left \r",
      " [  766 / 1000 ]  77% - 0:00:00 left \r",
      " [  767 / 1000 ]  77% - 0:00:00 left \r",
      " [  768 / 1000 ]  77% - 0:00:00 left \r",
      " [  769 / 1000 ]  77% - 0:00:00 left \r",
      " [  770 / 1000 ]  77% - 0:00:00 left \r",
      " [  771 / 1000 ]  77% - 0:00:00 left \r",
      " [  772 / 1000 ]  77% - 0:00:00 left \r",
      " [  773 / 1000 ]  77% - 0:00:00 left \r",
      " [  774 / 1000 ]  77% - 0:00:00 left \r",
      " [  775 / 1000 ]  78% - 0:00:00 left \r",
      " [  776 / 1000 ]  78% - 0:00:00 left \r",
      " [  777 / 1000 ]  78% - 0:00:00 left \r",
      " [  778 / 1000 ]  78% - 0:00:00 left \r",
      " [  779 / 1000 ]  78% - 0:00:00 left \r",
      " [  780 / 1000 ]  78% - 0:00:00 left \r",
      " [  781 / 1000 ]  78% - 0:00:00 left \r",
      " [  782 / 1000 ]  78% - 0:00:00 left \r",
      " [  783 / 1000 ]  78% - 0:00:00 left \r",
      " [  784 / 1000 ]  78% - 0:00:00 left \r",
      " [  785 / 1000 ]  78% - 0:00:00 left \r",
      " [  786 / 1000 ]  79% - 0:00:00 left \r",
      " [  787 / 1000 ]  79% - 0:00:00 left \r",
      " [  788 / 1000 ]  79% - 0:00:00 left \r",
      " [  789 / 1000 ]  79% - 0:00:00 left \r",
      " [  790 / 1000 ]  79% - 0:00:00 left \r",
      " [  791 / 1000 ]  79% - 0:00:00 left \r",
      " [  792 / 1000 ]  79% - 0:00:00 left \r",
      " [  793 / 1000 ]  79% - 0:00:00 left \r",
      " [  794 / 1000 ]  79% - 0:00:00 left \r",
      " [  795 / 1000 ]  80% - 0:00:00 left \r",
      " [  796 / 1000 ]  80% - 0:00:00 left \r",
      " [  797 / 1000 ]  80% - 0:00:00 left \r",
      " [  798 / 1000 ]  80% - 0:00:00 left \r",
      " [  799 / 1000 ]  80% - 0:00:00 left \r",
      " [  800 / 1000 ]  80% - 0:00:00 left \r",
      " [  801 / 1000 ]  80% - 0:00:00 left \r",
      " [  802 / 1000 ]  80% - 0:00:00 left \r",
      " [  803 / 1000 ]  80% - 0:00:00 left \r",
      " [  804 / 1000 ]  80% - 0:00:00 left \r",
      " [  805 / 1000 ]  80% - 0:00:00 left \r",
      " [  806 / 1000 ]  81% - 0:00:00 left \r",
      " [  807 / 1000 ]  81% - 0:00:00 left \r",
      " [  808 / 1000 ]  81% - 0:00:00 left \r",
      " [  809 / 1000 ]  81% - 0:00:00 left \r",
      " [  810 / 1000 ]  81% - 0:00:00 left \r",
      " [  811 / 1000 ]  81% - 0:00:00 left \r",
      " [  812 / 1000 ]  81% - 0:00:00 left \r",
      " [  813 / 1000 ]  81% - 0:00:00 left \r",
      " [  814 / 1000 ]  81% - 0:00:00 left \r",
      " [  815 / 1000 ]  82% - 0:00:00 left \r",
      " [  816 / 1000 ]  82% - 0:00:00 left \r",
      " [  817 / 1000 ]  82% - 0:00:00 left \r",
      " [  818 / 1000 ]  82% - 0:00:00 left \r",
      " [  819 / 1000 ]  82% - 0:00:00 left \r",
      " [  820 / 1000 ]  82% - 0:00:00 left \r",
      " [  821 / 1000 ]  82% - 0:00:00 left \r",
      " [  822 / 1000 ]  82% - 0:00:00 left \r",
      " [  823 / 1000 ]  82% - 0:00:00 left \r",
      " [  824 / 1000 ]  82% - 0:00:00 left \r",
      " [  825 / 1000 ]  82% - 0:00:00 left \r",
      " [  826 / 1000 ]  83% - 0:00:00 left \r",
      " [  827 / 1000 ]  83% - 0:00:00 left \r",
      " [  828 / 1000 ]  83% - 0:00:00 left \r",
      " [  829 / 1000 ]  83% - 0:00:00 left \r",
      " [  830 / 1000 ]  83% - 0:00:00 left \r",
      " [  831 / 1000 ]  83% - 0:00:00 left \r",
      " [  832 / 1000 ]  83% - 0:00:00 left \r",
      " [  833 / 1000 ]  83% - 0:00:00 left \r",
      " [  834 / 1000 ]  83% - 0:00:00 left \r",
      " [  835 / 1000 ]  84% - 0:00:00 left \r",
      " [  836 / 1000 ]  84% - 0:00:00 left \r",
      " [  837 / 1000 ]  84% - 0:00:00 left \r",
      " [  838 / 1000 ]  84% - 0:00:00 left \r",
      " [  839 / 1000 ]  84% - 0:00:00 left \r",
      " [  840 / 1000 ]  84% - 0:00:00 left \r",
      " [  841 / 1000 ]  84% - 0:00:00 left \r",
      " [  842 / 1000 ]  84% - 0:00:00 left \r",
      " [  843 / 1000 ]  84% - 0:00:00 left \r",
      " [  844 / 1000 ]  84% - 0:00:00 left \r",
      " [  845 / 1000 ]  84% - 0:00:00 left \r",
      " [  846 / 1000 ]  85% - 0:00:00 left \r",
      " [  847 / 1000 ]  85% - 0:00:00 left \r",
      " [  848 / 1000 ]  85% - 0:00:00 left \r",
      " [  849 / 1000 ]  85% - 0:00:00 left \r",
      " [  850 / 1000 ]  85% - 0:00:00 left \r",
      " [  851 / 1000 ]  85% - 0:00:00 left \r",
      " [  852 / 1000 ]  85% - 0:00:00 left \r",
      " [  853 / 1000 ]  85% - 0:00:00 left \r",
      " [  854 / 1000 ]  85% - 0:00:00 left \r",
      " [  855 / 1000 ]  86% - 0:00:00 left \r",
      " [  856 / 1000 ]  86% - 0:00:00 left \r",
      " [  857 / 1000 ]  86% - 0:00:00 left \r",
      " [  858 / 1000 ]  86% - 0:00:00 left \r",
      " [  859 / 1000 ]  86% - 0:00:00 left \r",
      " [  860 / 1000 ]  86% - 0:00:00 left \r",
      " [  861 / 1000 ]  86% - 0:00:00 left \r",
      " [  862 / 1000 ]  86% - 0:00:00 left \r",
      " [  863 / 1000 ]  86% - 0:00:00 left \r",
      " [  864 / 1000 ]  86% - 0:00:00 left \r",
      " [  865 / 1000 ]  86% - 0:00:00 left \r",
      " [  866 / 1000 ]  87% - 0:00:00 left \r",
      " [  867 / 1000 ]  87% - 0:00:00 left \r",
      " [  868 / 1000 ]  87% - 0:00:00 left \r",
      " [  869 / 1000 ]  87% - 0:00:00 left \r",
      " [  870 / 1000 ]  87% - 0:00:00 left \r",
      " [  871 / 1000 ]  87% - 0:00:00 left \r",
      " [  872 / 1000 ]  87% - 0:00:00 left \r",
      " [  873 / 1000 ]  87% - 0:00:00 left \r",
      " [  874 / 1000 ]  87% - 0:00:00 left \r",
      " [  875 / 1000 ]  88% - 0:00:00 left \r",
      " [  876 / 1000 ]  88% - 0:00:00 left \r",
      " [  877 / 1000 ]  88% - 0:00:00 left \r",
      " [  878 / 1000 ]  88% - 0:00:00 left \r",
      " [  879 / 1000 ]  88% - 0:00:00 left \r",
      " [  880 / 1000 ]  88% - 0:00:00 left \r",
      " [  881 / 1000 ]  88% - 0:00:00 left \r",
      " [  882 / 1000 ]  88% - 0:00:00 left \r",
      " [  883 / 1000 ]  88% - 0:00:00 left \r",
      " [  884 / 1000 ]  88% - 0:00:00 left \r",
      " [  885 / 1000 ]  88% - 0:00:00 left \r",
      " [  886 / 1000 ]  89% - 0:00:00 left \r",
      " [  887 / 1000 ]  89% - 0:00:00 left \r",
      " [  888 / 1000 ]  89% - 0:00:00 left \r",
      " [  889 / 1000 ]  89% - 0:00:00 left \r",
      " [  890 / 1000 ]  89% - 0:00:00 left \r",
      " [  891 / 1000 ]  89% - 0:00:00 left \r",
      " [  892 / 1000 ]  89% - 0:00:00 left \r",
      " [  893 / 1000 ]  89% - 0:00:00 left \r",
      " [  894 / 1000 ]  89% - 0:00:00 left \r",
      " [  895 / 1000 ]  90% - 0:00:00 left \r",
      " [  896 / 1000 ]  90% - 0:00:00 left \r",
      " [  897 / 1000 ]  90% - 0:00:00 left \r",
      " [  898 / 1000 ]  90% - 0:00:00 left \r",
      " [  899 / 1000 ]  90% - 0:00:00 left \r",
      " [  900 / 1000 ]  90% - 0:00:00 left \r",
      " [  901 / 1000 ]  90% - 0:00:00 left \r",
      " [  902 / 1000 ]  90% - 0:00:00 left \r",
      " [  903 / 1000 ]  90% - 0:00:00 left \r",
      " [  904 / 1000 ]  90% - 0:00:00 left \r",
      " [  905 / 1000 ]  90% - 0:00:00 left \r",
      " [  906 / 1000 ]  91% - 0:00:00 left \r",
      " [  907 / 1000 ]  91% - 0:00:00 left \r",
      " [  908 / 1000 ]  91% - 0:00:00 left \r",
      " [  909 / 1000 ]  91% - 0:00:00 left \r",
      " [  910 / 1000 ]  91% - 0:00:00 left \r",
      " [  911 / 1000 ]  91% - 0:00:00 left \r",
      " [  912 / 1000 ]  91% - 0:00:00 left \r",
      " [  913 / 1000 ]  91% - 0:00:00 left \r",
      " [  914 / 1000 ]  91% - 0:00:00 left \r",
      " [  915 / 1000 ]  92% - 0:00:00 left \r",
      " [  916 / 1000 ]  92% - 0:00:00 left \r",
      " [  917 / 1000 ]  92% - 0:00:00 left \r",
      " [  918 / 1000 ]  92% - 0:00:00 left \r",
      " [  919 / 1000 ]  92% - 0:00:00 left \r",
      " [  920 / 1000 ]  92% - 0:00:00 left \r",
      " [  921 / 1000 ]  92% - 0:00:00 left \r",
      " [  922 / 1000 ]  92% - 0:00:00 left \r",
      " [  923 / 1000 ]  92% - 0:00:00 left \r",
      " [  924 / 1000 ]  92% - 0:00:00 left \r",
      " [  925 / 1000 ]  92% - 0:00:00 left \r",
      " [  926 / 1000 ]  93% - 0:00:00 left \r",
      " [  927 / 1000 ]  93% - 0:00:00 left \r",
      " [  928 / 1000 ]  93% - 0:00:00 left \r",
      " [  929 / 1000 ]  93% - 0:00:00 left \r",
      " [  930 / 1000 ]  93% - 0:00:00 left \r",
      " [  931 / 1000 ]  93% - 0:00:00 left \r",
      " [  932 / 1000 ]  93% - 0:00:00 left \r",
      " [  933 / 1000 ]  93% - 0:00:00 left \r",
      " [  934 / 1000 ]  93% - 0:00:00 left \r",
      " [  935 / 1000 ]  94% - 0:00:00 left \r",
      " [  936 / 1000 ]  94% - 0:00:00 left \r",
      " [  937 / 1000 ]  94% - 0:00:00 left \r",
      " [  938 / 1000 ]  94% - 0:00:00 left \r",
      " [  939 / 1000 ]  94% - 0:00:00 left \r",
      " [  940 / 1000 ]  94% - 0:00:00 left \r",
      " [  941 / 1000 ]  94% - 0:00:00 left \r",
      " [  942 / 1000 ]  94% - 0:00:00 left \r",
      " [  943 / 1000 ]  94% - 0:00:00 left \r",
      " [  944 / 1000 ]  94% - 0:00:00 left \r",
      " [  945 / 1000 ]  94% - 0:00:00 left \r",
      " [  946 / 1000 ]  95% - 0:00:00 left \r",
      " [  947 / 1000 ]  95% - 0:00:00 left \r",
      " [  948 / 1000 ]  95% - 0:00:00 left \r",
      " [  949 / 1000 ]  95% - 0:00:00 left \r",
      " [  950 / 1000 ]  95% - 0:00:00 left \r",
      " [  951 / 1000 ]  95% - 0:00:00 left \r",
      " [  952 / 1000 ]  95% - 0:00:00 left \r",
      " [  953 / 1000 ]  95% - 0:00:00 left \r",
      " [  954 / 1000 ]  95% - 0:00:00 left \r",
      " [  955 / 1000 ]  96% - 0:00:00 left \r",
      " [  956 / 1000 ]  96% - 0:00:00 left \r",
      " [  957 / 1000 ]  96% - 0:00:00 left \r",
      " [  958 / 1000 ]  96% - 0:00:00 left \r",
      " [  959 / 1000 ]  96% - 0:00:00 left \r",
      " [  960 / 1000 ]  96% - 0:00:00 left \r",
      " [  961 / 1000 ]  96% - 0:00:00 left \r",
      " [  962 / 1000 ]  96% - 0:00:00 left \r",
      " [  963 / 1000 ]  96% - 0:00:00 left \r",
      " [  964 / 1000 ]  96% - 0:00:00 left \r",
      " [  965 / 1000 ]  96% - 0:00:00 left \r",
      " [  966 / 1000 ]  97% - 0:00:00 left \r",
      " [  967 / 1000 ]  97% - 0:00:00 left \r",
      " [  968 / 1000 ]  97% - 0:00:00 left \r",
      " [  969 / 1000 ]  97% - 0:00:00 left \r",
      " [  970 / 1000 ]  97% - 0:00:00 left \r",
      " [  971 / 1000 ]  97% - 0:00:00 left \r",
      " [  972 / 1000 ]  97% - 0:00:00 left \r",
      " [  973 / 1000 ]  97% - 0:00:00 left \r",
      " [  974 / 1000 ]  97% - 0:00:00 left \r",
      " [  975 / 1000 ]  98% - 0:00:00 left \r",
      " [  976 / 1000 ]  98% - 0:00:00 left \r",
      " [  977 / 1000 ]  98% - 0:00:00 left \r",
      " [  978 / 1000 ]  98% - 0:00:00 left \r",
      " [  979 / 1000 ]  98% - 0:00:00 left \r",
      " [  980 / 1000 ]  98% - 0:00:00 left \r",
      " [  981 / 1000 ]  98% - 0:00:00 left \r",
      " [  982 / 1000 ]  98% - 0:00:00 left \r",
      " [  983 / 1000 ]  98% - 0:00:00 left \r",
      " [  984 / 1000 ]  98% - 0:00:00 left \r",
      " [  985 / 1000 ]  98% - 0:00:00 left \r",
      " [  986 / 1000 ]  99% - 0:00:00 left \r",
      " [  987 / 1000 ]  99% - 0:00:00 left \r",
      " [  988 / 1000 ]  99% - 0:00:00 left \r",
      " [  989 / 1000 ]  99% - 0:00:00 left \r",
      " [  990 / 1000 ]  99% - 0:00:00 left \r",
      " [  991 / 1000 ]  99% - 0:00:00 left \r",
      " [  992 / 1000 ]  99% - 0:00:00 left \r",
      " [  993 / 1000 ]  99% - 0:00:00 left \r",
      " [  994 / 1000 ]  99% - 0:00:00 left \r",
      " [  995 / 1000 ] 100% - 0:00:00 left \r",
      " [  996 / 1000 ] 100% - 0:00:00 left \r",
      " [  997 / 1000 ] 100% - 0:00:00 left \r",
      " [  998 / 1000 ] 100% - 0:00:00 left \r",
      " [  999 / 1000 ] 100% - 0:00:00 left \r",
      " [ 1000 / 1000 ] 100% - 0:00:00 left \n",
      " quantization error: 0.014719801436999119\n",
      " topographic error: 0.12666666666666668\n",
      "\n",
      "...ready!\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%autoreload 2\n",
    "data = np.genfromtxt('iris.csv', delimiter=',', usecols=(0, 1, 2, 3))\n",
    "# data normalization\n",
    "data = np.apply_along_axis(lambda x: x/np.linalg.norm(x), 1, data)\n",
    "\n",
    "# Initialization and training\n",
    "som = MiniSom(7, 7, 4, sigma=3, learning_rate=0.5, \n",
    "              neighborhood_function='triangle', random_seed=10)\n",
    "\n",
    "som.pca_weights_init(data)\n",
    "print(\"Training...\")\n",
    "som.train_batch(data, 1000, verbose=True)  # random training\n",
    "print(\"\\n...ready!\")\n",
    "\n",
    "plt.figure(figsize=(7, 7))\n",
    "# Plotting the response for each pattern in the iris dataset\n",
    "plt.pcolor(som.distance_map().T, cmap='bone_r')  # plotting the distance map as background\n",
    "#plt.colorbar()\n",
    "\n",
    "target = np.genfromtxt('iris.csv', delimiter=',', usecols=(4), dtype=str)\n",
    "t = np.zeros(len(target), dtype=int)\n",
    "t[target == 'setosa'] = 0\n",
    "t[target == 'versicolor'] = 1\n",
    "t[target == 'virginica'] = 2\n",
    "\n",
    "# use different colors and markers for each label\n",
    "markers = ['o', 's', 'D']\n",
    "colors = ['C0', 'C1', 'C2']\n",
    "for cnt, xx in enumerate(data):\n",
    "    w = som.winner(xx)  # getting the winner\n",
    "    # palce a marker on the winning position for the sample xx\n",
    "    plt.plot(w[0]+.5, w[1]+.5, markers[t[cnt]], markerfacecolor='None',\n",
    "             markeredgecolor=colors[t[cnt]], markersize=12, markeredgewidth=2)\n",
    "plt.axis([0, 7, 0, 7])\n",
    "plt.savefig('resulting_images/som_iris.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Activations frequencies\n",
    "----"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAb0AAAGfCAYAAADLSgx5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAXBklEQVR4nO3dbaxlZ3Uf8P8av+B382JABjuxlRYnxCI2GUGpKaI4RLwV8iFCtgRKUKTph0LtNhUv/YLaD1FaVYi0pSgjG0qEY0QMKChNCUhgUaTEjce4wfaYJhASbAy2QwHbAozJ6od73I6cgXvvc8+55+zZv5+1NffOPbPPOrLs/6y1n/3s6u4AwBwcWHcBALBfhB4AsyH0AJgNoQfAbAg9AGZD6AEwG9uGXlVdUlW3H3N8p6qu3Y/iACBJqup9VXV/Vd1xzO89tao+VVV/vvj1KdueZzf36VXVSUnuTfLC7v6rocoBYJeq6iVJHk7yO9196eL3/n2Sb3b3b1bV25M8pbvf9uPOs9vx5pVJviTwANhP3f3ZJN98wm+/LskHFl9/IMkvbXeek3f5vlclufF4P6iqQ0kOJcmpp53x88/8yZ/a5ak3z7e/+4N1l7A0F5x7+rpLWJqTTqp1l7A033v0h+sugeM45aQTa7nDXV/4/IPd/fRln/ekc36y+7HvLuVc/d0H7kzyvWN+63B3H97mjz2zu+9bfP31JM/c7n12HHpVdWqS1yZ5x/F+vijucJL8xE8/r992/cd3euqN9Yd33L/uEpbmN175M+suYWmedvaT1l3C0tzxtW+vuwSO4/yzT1t3CUt12U+es5LpXD/23Tzpktcv5Vzfu/093+vug8O1dHdVbXu9bjed3iuT3Nbd3xgtCoATSSW11q74G1V1fnffV1XnJ9m2U9lNtVfnR4w2AWANPp7kVxZf/0qS39/uD+wo9KrqzCQvT/LR4dIAOLFUkqrlHNu9VdWNSf44ySVVdU9V/VqS30zy8qr68yS/sPj+x9rReLO7H0nytJ28FoAZ2afxZndf/SN+dOVuznNiLVECgB9jt7csAMD/t4PR5CYRegAMWvvqzV2bVrUAsAc6PQDGGW8CMAsV400A2FQ6PQAG7ezG8k0i9AAYZ7wJAJtJpwfAOONNAObBzekAsLF0egCMefzRQhMi9AAYZ7wJAJtJpwfAoOktZBF6AIw7MK1retOKaADYA50eAGMm+JQFoQfAuIndsjCtiAaAPdDpATDI6k0A5sR4EwA2k04PgHHGmwDMQtXkxptCD4BxE+v0plUtAOyBTg+AccabAMzD9O7Tm1a1ALAHOj0AxhlvAjALE3zKwrSqBYA90OkBMGh6C1mEHgDjJnZNb1oRDQB7oNMDYJzxJgCzYbwJAJtJpwfAmLJ6E4A5Md4EgM2k0wNgWE2s0xN6AAypTC/0djTerKonV9VNVXV3VR2tqhetujAAWLaddnq/leQT3f3LVXVqkjNWWBMAU1CLY0K2Db2qOjfJS5L8apJ096NJHl1tWQBsvprceHMnnd7FSR5I8v6q+rkkR5Jc092PHPuiqjqU5FCSnPX083PX/d9ddq377i0vvnjdJSzNJc86e90lLM3NX3xg3SVwHJc+69x1l7A0v3/X19ZdAiuyk2t6Jyd5fpL3dvflSR5J8vYnvqi7D3f3we4+ePo5T11ymQBsoqpayrFfdhJ69yS5p7tvWXx/U7ZCEICZO+FCr7u/nuSrVXXJ4reuTHLXSqsCgBXY6erNtyS5YbFy88tJ3rS6kgCYihNxIUu6+/YkB1dcCwBTMsFbFuy9CcBs2IYMgCF1gt6nBwDHNbXQM94EYDZ0egAMm1qnJ/QAGDa10DPeBGA2dHoAjJngfXpCD4BhxpsAsKF0egAMcXM6ALMytdAz3gRgEqrqX1TVnVV1R1XdWFWn7fYcQg+AcbWkY7u3qXp2kn+e5GB3X5rkpCRX7bZc400AxtS+jzdPTnJ6Vf0gyRlJvrbbE+j0ANgE51XVrccch479YXffm+Q/JPnrJPcl+XZ3f3K3b6LTA2DYEju9B7v7Rz6svKqekuR1SS5O8q0kv1dVb+juD+7mTXR6AAyrqqUcO/ALSf6yux/o7h8k+WiSf7jbeoUeAFPw10n+QVWdUVspeWWSo7s9ifEmAEP28+b07r6lqm5KcluSx5J8Psnh3Z5H6AEwbh8Xb3b3O5O8cy/nMN4EYDZ0egCM2f/79PZM6AEwbGqhZ7wJwGzo9AAYNrVOT+gBMG5amSf0ABg3tU7PNT0AZkOnB8CQXeybuTGEHgDDphZ6xpsAzIZOD4BhU+v0hB4A46aVecabAMyHTg+AYcabAMzDBJ+yYLwJwGzo9AAYUkkm1ugJPQBGTW9HFuNNAGZDpwfAsIk1ekIPgHHGmwCwoXR6AIypE3S8WVVfSfJQkh8meay7D66yKAA2XyU5cGBaqbebTu8fd/eDK6sEAFbMeBOAYSfkeDNJJ/lkVXWS3+7uw098QVUdSnIoSXLKWXnfv33P0opcl+f+53+17hKW5qV5+rpLWJovfeuRdZfACe7FFz5t3SVMxtRWb+409F7c3fdW1TOSfKqq7u7uzx77gkUQHk6SA2c8o5dcJwDs2Y5uWejuexe/3p/kY0lesMqiAJiAxerNZRz7ZdvQq6ozq+rsx79O8otJ7lh1YQBstq0Np2spx37ZyXjzmUk+tijq5CS/292fWGlVALAC24Zed385yc/tQy0ATMr0nrLglgUAhk0s8+y9CcB86PQAGGa8CcA8THDDaeNNAGZDpwfAkMfv05sSoQfAsIllnvEmAPOh0wNgmPEmALMxscwz3gRgPnR6AIwp400AZmLrloV1V7E7xpsAzIZOD4BBHi0EwIxMLPOMNwGYD50eAMOMNwGYB48WAoDNpdMDYIhHCwEwK1MLPeNNAGZDpwfAsIk1ekIPgHHGmwCwoXR6AIyZ4H16Qg+AIWXDaQDmZGKZ55oeAPOh0wNg2IGJtXpCD4BhE8s8400A5kOnB8CQKjenAzAjB2o5x05U1ZOr6qaquruqjlbVi3Zbr04PgKn4rSSf6O5frqpTk5yx2xMIPQCG7dd4s6rOTfKSJL+aJN39aJJHd3se400AhlUt50hyXlXdesxx6AlvdXGSB5K8v6o+X1XXVdWZu61X6AGwCR7s7oPHHIef8POTkzw/yXu7+/IkjyR5+27fROgBMKSy2H9zCf/swD1J7unuWxbf35StENwV1/QAGLbTlZd71d1fr6qvVtUl3f3FJFcmuWu35xF6AEzFW5LcsFi5+eUkb9rtCYQeAGNqfx8t1N23Jzm4l3MIPQCGTWxDFgtZAJiPHXd6VXVSkluT3Nvdr1ldSQBMQeXEfrTQNUmOJjlnRbUAMDETy7ydjTer6oIkr05y3WrLAYDV2Wmn9+4kb01y9o96wWLLmK1tY045a8+FAbD5pvZooW1Dr6pek+T+7j5SVS/9Ua9bbBlzOEme87OX9X/84DuXViR79+BDu96XdWMd/uSX1l3C0vy3a//RuktYmr956PvrLmFpDh+5Z90lTMIx+2ZOxk7Gm1ckeW1VfSXJh5K8rKo+uNKqAGAFtg297n5Hd1/Q3RcluSrJp7v7DSuvDICNd6BqKcd+cXM6AMMmNt3cXeh1981Jbl5JJQCwYjo9AIadcKs3AeB4tnZkWXcVu2PvTQBmQ6cHwJh9frTQMgg9AIZNLPOMNwGYD50eAMOMNwGYBas3AWCD6fQAGGa8CcBsTCvyjDcBmBGdHgBDqrKvjwVaBqEHwLCJZZ7xJgDzodMDYJjVmwDMxsQyz3gTgPnQ6QEwpFJWbwIwE2W8CQAbS6cHwDCrNwGYjamNC6dWLwAM0+kBMKRivAnAjEztyelCD4BhUws91/QAmA2dHgBDqlzTA2BGjDcBYEPp9AAYNrHpptADYEwlk3vKgvEmALOh0wNg2NQ6J6EHwLCJTTcnF9IAMEynB8CQqprcQhahB8CwiWWe8SYA86HTA2DY1LYhE3oADHFzOgBsMJ0eAMMm1ugJPQAG1fSu6RlvAjAb23Z6VXVaks8medLi9Td19ztXXRgAm68yrVZvJ+PN7yd5WXc/XFWnJPlcVf337v6TFdcGwAbbWr257ip2Z9vQ6+5O8vDi21MWR6+yKABYhR0tZKmqk5IcSfL3krynu285zmsOJTmUJOc/+8Kcf/Zpy6xzLS551tnrLmFpbv7iA+suYWn+3euft+4SluZvHvr+ukvgOA79/AXrLmGp/ssKzz21Tm9HC1m6+4fdfVmSC5K8oKouPc5rDnf3we4++JSnnrfsOgHYQFW1lGO/7Gr1Znd/K8lnkrxiNeUAwOpsG3pV9fSqevLi69OTvDzJ3asuDIDN9vhClmUc+2Un1/TOT/KBxXW9A0k+3N1/sNqyANh4dQLuyNLdf5bk8n2oBQBWyjZkAAyb2lMWhB4AQ6Z4c7q9NwGYhKo6qao+X1XD60p0egAM2+fp5jVJjiY5Z/QEOj0ABlUOLOnY9p2qLkjy6iTX7aVioQfAJjivqm495jj0hJ+/O8lbk/ztXt7EeBOAIZWljjcf7O6Dx32fqtckub+7j1TVS/fyJkIPgDH7t5vKFUleW1WvSnJaknOq6oPd/Ybdnsh4E4CN1t3v6O4LuvuiJFcl+fRI4CU6PQD2wM3pAMzCkq/p7Uh335zk5tE/b7wJwGzo9AAYZrwJwGxMLPOMNwGYD50eAEMq0+uchB4AYyqpic03pxbSADBMpwfAsGn1eUIPgEFbT06fVuwZbwIwGzo9AIZNq88TegDswcSmm8abAMyHTg+AQTW5+/SEHgBD7MgCwKxMrdObWkgDwDCdHgDDptXnCT0ARtlwGgA2l04PgCFWbwIwK8abALChdHoADJtWnyf0ANiDiU03jTcBmA+dHgBDtlZvTqvVE3oADDPeBIANpdMDYFCljDcBmAvjTQDYUDo9AIZYvQnAfNQJON6sqgur6jNVdVdV3VlV1+xHYQCwbDvp9B5L8uvdfVtVnZ3kSFV9qrvvWnFtAGy4qXV624Zed9+X5L7F1w9V1dEkz04i9ABmbmq3LOxq9WZVXZTk8iS3HOdnh6rq1qq69f9888HlVAcAS7TjhSxVdVaSjyS5tru/88Sfd/fhJIeT5Dk/e1nf99D3llbkulySs9ddwtL8p8/95bpLWJrfeOXPrLuEpTl85J51l7A0/+Q55627hKV524f/bN0lTEIlOTCtRm9noVdVp2Qr8G7o7o+utiQApuKEG2/W1rPgr09ytLvftfqSAGA1dnJN74okb0zysqq6fXG8asV1ATABVcs59stOVm9+LtN7IjwA++CEG28CwInCNmQADDlhV28CwN81vefpGW8CMBs6PQDGTPApC0IPgGETyzzjTQDmQ6cHwJCt1ZvT6vWEHgDDphV5xpsAzIhOD4BxE2v1hB4Aw9ycDgAbSqcHwLCJLd4UegCMm1jmGW8CMB86PQDGTazVE3oADKlYvQkAG0unB8AYjxYCYE4mlnnGmwDMh04PgHETa/WEHgCDyupNAFi2qrqwqj5TVXdV1Z1Vdc3IeXR6AAzbx9WbjyX59e6+rarOTnKkqj7V3Xft5iQ6PQCG1BKP7XT3fd192+Lrh5IcTfLs3das0wNg3PI6vfOq6tZjvj/c3YeP+5ZVFyW5PMktu30ToQfAJniwuw9u96KqOivJR5Jc293f2e2bCD0Ahu3n6s2qOiVbgXdDd3905BxCD4Bh+7WQpaoqyfVJjnb3u0bPYyELAFNwRZI3JnlZVd2+OF6125Po9AAYtl/Dze7+3DLeTugBMGan9xtsEONNAGZDpwfAsKntvSn0ABhSmd5DZI03AZgNnR4AwybW6Ak9APZgYqlnvAnAbOj0ABhm9SYAs2H1JgBsKJ0eAMMm1uht3+lV1fuq6v6qumM/CgJgQmpJxz7ZyXjzvyZ5xYrrAICV23a82d2fraqLVl8KAFOy1aRNa8C5tGt6VXUoyaEkecb5FyzrtABsqpre6s2lhV53H05yOEl+4qef11/61iPLOvXaXPrQuesuYWl++/WXrbsEjuO5zzh93SXArFi9CcCwiTV6Qg+APZhY6u3kloUbk/xxkkuq6p6q+rXVlwUAy7eT1ZtX70chAExNzXf1JgDzM7XVm/beBGA2dHoADNnnHcSWQugBMG5iqWe8CcBs6PQAGGb1JgCzYfUmAGwonR4AwybW6Ak9AAZN8NFCxpsAzIZOD4A9mFarJ/QAGFIx3gSAjaXTA2DYxBo9oQfAOONNANhQOj0Ahtl7E4D5mFbmGW8CMB86PQCGTazRE3oAjCl7bwLA5tLpATDM6k0A5mNamWe8CcB86PQAGDaxRk/oATBuaqs3hR4Ag2pyC1lc0wNgNnR6AAzx5HQA2GBCD4DZMN4EYNjUxptCD4BhVm8CwIbS6QEwZoKPFhJ6AAypTG8bMuNNAGZDpwfAuIm1ekIPgGFWbwLAhtLpATDM6k0AZmNimWe8CcB86PQAGDexVm9HnV5VvaKqvlhVf1FVb191UQBMQy3pnx291xKyaNvQq6qTkrwnySuTPDfJ1VX13JE3A4ARy8qinXR6L0jyF9395e5+NMmHkrxut28EwInl8SenL+PYgaVk0U6u6T07yVeP+f6eJC984ouq6lCSQ4tvv//mF198x26L2TRv3vrlvCQPrrWQ5fFZNpPPsplOpM9yySpOetttR/7o9FPqvCWd7rSquvWY7w939+Fjvt9RFm1naQtZFsUdTpKqurW7Dy7r3Ovks2wmn2Uz+Syb6QlhsjTd/YpVnHeVdjLevDfJhcd8f8Hi9wBgvywli3YSen+a5O9X1cVVdWqSq5J8fLdvBAB7sJQs2na82d2PVdWbk/xRkpOSvK+779zmjx3e5udT4rNsJp9lM/ksm2nyn2Uwi/6O6u6lFwcAm8g2ZADMhtADYDaWGnon0nZlVfW+qrq/qiZ9v2FVXVhVn6mqu6rqzqq6Zt01jaqq06rqf1bV/1p8ln+z7pr2qqpOqqrPV9UfrLuWvaiqr1TVF6rq9lUtj98vVfXkqrqpqu6uqqNV9aJ11zSiqi5Z/Pt4/PhOVV277rrWbWnX9BZbxPzvJC/P1k2Df5rk6u6+aylvsM+q6iVJHk7yO9196brrGVVV5yc5v7tvq6qzkxxJ8ktT/PdSVZXkzO5+uKpOSfK5JNd095+subRhVfUvkxxMck53v2bd9Yyqqq8kOdjdk7+Zu6o+kOR/dPd1i1WCZ3T3t9Zd114s/v98b5IXdvdfrbuedVpmp3dCbVfW3Z9N8s1117FX3X1fd9+2+PqhJEeztbPB5PSWhxffnrI4JrsSq6ouSPLqJNetuxa2VNW5SV6S5Pok6e5Hpx54C1cm+dLcAy9Zbugdb4uYSf7P9URVVRcluTzJLeutZNxiHHh7kvuTfKq7J/tZkrw7yVuT/O26C1mCTvLJqjqy2JJwqi5O8kCS9y/GztdV1ZnrLmoJrkpy47qL2AQWssxEVZ2V5CNJru3u76y7nlHd/cPuvixbuzG8oKomOXquqtckub+7j6y7liV5cXc/P1s74P+zxeWBKTo5yfOTvLe7L0/ySJKpr084Nclrk/zeumvZBMsMPduVbajF9a+PJLmhuz+67nqWYTFy+kySye39t3BFktcuroV9KMnLquqD6y1pXHffu/j1/iQfy9bljim6J8k9x0wQbspWCE7ZK5Pc1t3fWHchm2CZoWe7sg20WPxxfZKj3f2uddezF1X19Kp68uLr07O1aOru9VY1prvf0d0XdPdF2fpv5dPd/YY1lzWkqs5cLJLKYhT4i0kmueq5u7+e5KtV9fhTCa5MMrlFX09wdYw2/59lPmVhKVvEbIqqujHJS5OcV1X3JHlnd1+/3qqGXJHkjUm+sLgWliT/urv/cI01jTo/yQcWK9EOJPlwd096qf8J4plJPrb196ucnOR3u/sT6y1pT96S5IbFX96/nORNa65n2OIvIS9P8k/XXcumsA0ZALNhIQsAsyH0AJgNoQfAbAg9AGZD6AEwG0IPgNkQegDMxv8FK65XwNMAg0sAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 7))\n",
    "frequencies = som.activation_response(data)\n",
    "plt.pcolor(frequencies.T, cmap='Blues') \n",
    "plt.colorbar()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Class pies\n",
    "----"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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a6A0waOPoDTUlcrpoRIoKW2gtCy5o4+gNNQXfWws+hjdCEtXMFmf4qilA3I9txpYGnbBOWk4OWedthXpY2Rrd5EHk/X59NNPC2sHEzuTH6hSfvFYFCXcc8892xx//PFLbNtO1BrOOghL6f0rpppGzsiRI3c49NBDl55wwgm+1lleeeWVTnfccUf3N998M7YjKYq9YmW4adf3MygUChXDhg3b6fXXX/d1LMaQIUN6jRo1at7AgQM32Uv//e9/362ysrLhkksuCd3LjSqYGPTjtwZ8q2bcuHFd99prr+pEB5MWRENDA42NjZSVbbhMcdddd30bhQ21tbVUVChN6EoEtm3XbiyQbM7fZ555ZrOptqNGjdJ++oSh5RF6n0lLZ8mSJaWHHnrobr179+67++6793v44Ye7vPPOO5X77bdf7379+vUZPHjw7l999VXFmDFjukyePLnyrLPO2mWPPfbou2zZspIXX3yxU58+ffpWVVX1PfXUU+3q6uoSgOHDh++466679quqqup74YUX9gB48sknrf79++/Rp0+fvoMGDaqaNWvWFhPIhw8fvuMtt9zSbfX/X3755Ttcf/313a+77rrue+65Z5+qqqq+l1122Q4AM2bMaGPb9p4nnniiXVVV1e+LL75oc/LJJ9u77757v6qqqr433HDDtgAnn3yyPWbMmC4A48ePr9x777336N27d1/HcfosXry4dMWKFSWnnHKKXVVV1bdPnz59X3755U7r2zVv3ryyI444Yteqqqq+AwYM2OODDz5ov9q+E044Yed99tlnj5NOOmnnaO6SPjZ1/3ffffd+IEfUhx9++G4HHHBA1aBBg3rX19dzxhln9Nx55537DRo0aPdDDjlkt9X3ev/99+/99ttvVwJUVlbufemll+7Yu3fvvgMGDNhj9Tu7Wj7A5MmT2w4aNKiqd+/effv27dtnypQpbT3PKz3wwAOr+vbt26eqqqrvuHHjOkd/VwxR0+qDyfPPP7/VdtttVztjxoypn3322ZSTTjppyYgRI3q++OKLX0yZMmVaOp3+7sorr9zxnHPOWbznnnuuGDt27P+mT58+tbS0lIsuumjnZ5555ouZM2dOraur47bbbus2d+7csldffbXLZ599NmXmzJlTb7755jkARx555LKJEydOnzZt2tRTTjll0Y033rhd3L6rYujQoYuef/75rVf//4svvtilW7dudZ9//nm7SZMmTZs2bdrUiRMnVr722msdAb7++uu2l1xyyYLPP/98yrx588rnzJlTsfp+/epXv1pn6mTlypUlQ4cO3fWuu+76esaMGVPHjx8/o2PHjg233nrrtiUlJcycOXPqk08++b8LL7zQXrFixTqrxKNGjdphwIABK2bOnDn1pptump1Op38IHJ999lm7t99+e8bLL7+ctHKwvtnY/R80aNA6aa1TpkypfPHFF7/473//O2Ps2LFdZs2a1ebzzz+f8vTTT3/5ySefdNyY3Orq6tIDDzxw2YwZM6YeeOCBy+69995u6//m9NNP33nYsGHzZ8yYMXXChAnTe/bsWVtZWdmQz+c/nzp16rTx48fPvOaaa3o0NGx5S02GddliesdB2WeffaqvvfbanS6++OIdf/7zn3vbbLNN3Weffdb+8MMPrwI5FdOtW7cNVFiJaAAAIABJREFUprU+/fTTdj169FjVv3//VQBnn332wvvuu2/bq6++en7btm0bhgwZYh977LHfDxkyxAP48ssv25xwwgk9FixYUFFTU1O60047JamcbCh+/OMfVy9cuLC8UChUzJkzp9yyrHrXddu//fbbW/Xt27cvwIoVK0qnT5/ebpdddqnZfvvta37yk58sB9hjjz1WzZo1q206nd7puOOO80488cR1dm1PmjSp3bbbblt7yCGHrADYeuutGwDee++9jpdeeul8gL333nvlDjvsUOO67jqb8z788MNOzz333OcAxx9//NILL7ywfNGiRaUAP/vZz77v2LHjFrEAu7H7v/POO6+TLXjQQQct6d69ez3AO++80/Gkk05aXFZWRs+ePesOOOCAja5LVVRUNP7yl7/0AAYOHLj8jTfeWGdf1eLFi0vnzZvX5qyzzvoeoLKyshFoXLVqVcnIkSN7vP/++x1LS0uZP39+m2+++aa8Z8+eLSpL0+CPVh9M+vfvv+rjjz+e+txzz1nXXXfdjgcffPCS3XbbrXrixImBzlSqqKhg4sSJ01566aWt/vKXv3R54IEHtn3//fdnXnLJJT1//etfzx06dKj3yiuvdLrxxht3UO1LnBx//PGLx40b12Xu3LkVJ5100qKvvvqqzciRI+dcddVV62TqzZgxo01lZeUP3dRu3brVT548eeoLL7yw1ejRo7s988wzWz/77LMF3fZ26NBhi+oqr3//1//3te95cykvL28sLS1d/d/U1dU1Kz/4wQcf3HrhwoXlrutOa9u2beOOO+7oVFdXt/pZkC2dVv+AC4VCRadOnRqGDx++6PLLL587YcKEDosWLSp/4403OgCsWrWqZMKECe0AOnbsWO95XhnAgAEDVs6ePbvN5MmT2wKMHTt2m4MOOmip53mlixYtKhsyZIg3evToWdOnT68EWLp0aVnPnj1rAR577LHwu8oTxhlnnLHoueee2/qVV17pcuaZZy4++uijlzz++ONdPc8rBfjyyy8rZs+evUHnZc6cOeX19fWcffbZ399yyy2zXdetXPvf+/fvv3L+/PkV48ePrwTZG66treXHP/7xsnHjxm0NMGnSpLZz5sxp079//3UykH70ox8tHTNmzDYgs7y6dOlSt3pks6Wx/v1v6reDBw9e9te//rVLfX09s2bNKv/ggw82WG9qDl26dGnYbrvtah5//PHOANXV1SVLly4t9TyvrGvXrrVt27ZtfPnllzt9++23bYLIN7QsEjcyUZnK2xw++uij9ldffXWP0tJSysvLG++///6vysvLG0eMGNFz6dKlZfX19SUXX3zxvH333XflWWed9d2ll17a66qrrmqYMGHCtNGjRxdOPfXUXevr6xkwYMCKK6+8csH8+fPLjz322N1WrVpVAnDTTTfNArj22mu/Pe2003a1LKtu8ODBS7/++uu2WhyKKZV33333Xbl8+fLS7t271/Tq1au2V69etVOmTGm333777QGyZ/zEE098WV5evs7UUqFQqDjvvPPshoaGEoAbb7xxnaPF27Vr1/jEE098MWLEiJ4rV64sbdeuXcPbb789c9SoUfPPOuusXlVVVX3Lysp48MEHC+3bt19H9q233vrt0KFD7aqqqr7t27dveOyxxyJZHwmSyhuW9e//jBkzNtmAp9PpxW+88Uan3Xbbrd/2229f069fvxWdO3cOtB9h3LhxX15wwQW9brrpph0qKioan3322S/OP//8RUcfffRuVVVVffv3779i5513blGbAQ3BSNw+E4PBoB/P80oty2qYO3du2X777dfn3XffnR7HmobZZ7LlkLiRicFg0M+RRx65+5IlS8pqa2tLrrrqqjlmcdwQFhNMDIZWyIcffjgjbhsMWxZJWIBvWD1fbjAYWg/F736LTIhojSQhmExesGCBZQKKwdB6WF3P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\n",
      "text/plain": [
       "<Figure size 504x504 with 45 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "label = np.genfromtxt('iris.csv', delimiter=',', usecols=(4), dtype=str)\n",
    "labels_map = som.labels_map(data, label)\n",
    "label_names = np.unique(label)\n",
    "\n",
    "plt.figure(figsize=(7, 7))\n",
    "the_grid = GridSpec(7, 7)\n",
    "for position in labels_map.keys():\n",
    "    label_fracs = [labels_map[position][l] for l in label_names]\n",
    "    plt.subplot(the_grid[6-position[1], position[0]], aspect=1)\n",
    "    patches, texts = plt.pie(label_fracs)\n",
    "plt.legend(patches, label_names, bbox_to_anchor=(0, 1.5), ncol=3)\n",
    "plt.savefig('resulting_images/som_iris_pies.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Quantization error\n",
    "----"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "iteration=9999 status=100.00%"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'iteration index')"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "som = MiniSom(7, 7, 4, sigma=3, learning_rate=0.5, \n",
    "              neighborhood_function='triangle', random_seed=10)\n",
    "som.pca_weights_init(data)\n",
    "max_iter = 10000\n",
    "q_error = []\n",
    "t_error = []\n",
    "iter_x = []\n",
    "for i in range(max_iter):\n",
    "    percent = 100*(i+1)/max_iter\n",
    "    rand_i = np.random.randint(len(data)) # This corresponds to train_random() method.\n",
    "    som.update(data[rand_i], som.winner(data[rand_i]), i, max_iter)\n",
    "    if (i+1) % 100 == 0:\n",
    "        q_error.append(som.quantization_error(data))\n",
    "        t_error.append(som.topographic_error(data))\n",
    "        iter_x.append(i)\n",
    "        sys.stdout.write(f'\\riteration={i:2d} status={percent:0.2f}%')\n",
    "        \n",
    "plt.plot(iter_x, q_error)\n",
    "plt.ylabel('quantization error')\n",
    "plt.xlabel('iteration index')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'iteration index')"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(iter_x, t_error)\n",
    "plt.ylabel('quantization error')\n",
    "plt.xlabel('iteration index')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
